package com.ruoyi.wx.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import com.ruoyi.wx.mapper.ANoticeMapper;
import com.ruoyi.wx.domain.ANotice;
import com.ruoyi.wx.service.IANoticeService;

/**
 * 信息公告Service业务层处理
 * 
 * @author pan
 * @date 2022-12-13
 */
@Service
public class ANoticeServiceImpl implements IANoticeService 
{
    private static final String key = "load:notice:notice";  // Redis中的key

    @Autowired
    private ANoticeMapper aNoticeMapper;

    @Autowired
    private StringRedisTemplate redisTemplate;
    /**
     * 查询信息公告
     * 
     * @param id 信息公告主键
     * @return 信息公告
     */
    @Override
    public ANotice selectANoticeById(Long id)
    {
        return aNoticeMapper.selectANoticeById(id);
    }

    /**
     * 查询信息公告列表
     * 
     * @param aNotice 信息公告
     * @return 信息公告
     */
    @Override
    public List<ANotice> selectANoticeList(ANotice aNotice)
    {
        return aNoticeMapper.selectANoticeList(aNotice);
    }

    /**
     * 新增信息公告
     * 
     * @param aNotice 信息公告
     * @return 结果
     */
    @Override
    public int insertANotice(ANotice aNotice)
    {
        // 插入之前，删除Redis中的缓存【顺序可换】
        redisTemplate.delete(key);

        aNotice.setCreateTime(DateUtils.getNowDate());
        return aNoticeMapper.insertANotice(aNotice);
    }

    /**
     * 修改信息公告
     * 
     * @param aNotice 信息公告
     * @return 结果
     */
    @Override
    public int updateANotice(ANotice aNotice)
    {
        // 插入之前，删除Redis中的缓存【顺序可换】
        redisTemplate.delete(key);

        aNotice.setUpdateTime(DateUtils.getNowDate());
        return aNoticeMapper.updateANotice(aNotice);
    }

    /**
     * 批量删除信息公告
     * 
     * @param ids 需要删除的信息公告主键
     * @return 结果
     */
    @Override
    public int deleteANoticeByIds(Long[] ids)
    {
        // 插入之前，删除Redis中的缓存【顺序可换】
        redisTemplate.delete(key);

        return aNoticeMapper.deleteANoticeByIds(ids);
    }

    /**
     * 删除信息公告信息
     * 
     * @param id 信息公告主键
     * @return 结果
     */
    @Override
    public int deleteANoticeById(Long id)
    {
        // 插入之前，删除Redis中的缓存【顺序可换】
        redisTemplate.delete(key);

        return aNoticeMapper.deleteANoticeById(id);
    }
}
